Library cross_difference
Require Export PointsType.
Require Import incidence.
Require Import isogonal_conjugate.
Open Scope R_scope.
Section Triangle.
Context `{M:triangle_theory}.
Definition cross_difference P U :=
match P,U with
cTriple p q r, cTriple u v w ⇒
cTriple (q×w - r×v) (r×u - p×w) (p×v - q×u)
end.
Lemma cross_difference_property :
∀ P U,
match P,U with
cTriple X Y Z, cTriple X2 Y2 Z2 ⇒
X × Y2 - X2 × Y ≠ 0 →
Y × Z2 - Y2 × Z ≠ 0 →
Z × X2 - Z2 × X ≠ 0 →
eq_points (cross_difference P U) (isogonal_conjugate (trilinear_pole (line P U)))
end.
Proof.
intros.
destruct P.
destruct U.
unfold eq_points, trilinear_pole, cross_difference, isogonal_conjugate.
simpl.
split;
field;
repeat split;assumption.
Qed.
End Triangle.
Require Import incidence.
Require Import isogonal_conjugate.
Open Scope R_scope.
Section Triangle.
Context `{M:triangle_theory}.
Definition cross_difference P U :=
match P,U with
cTriple p q r, cTriple u v w ⇒
cTriple (q×w - r×v) (r×u - p×w) (p×v - q×u)
end.
Lemma cross_difference_property :
∀ P U,
match P,U with
cTriple X Y Z, cTriple X2 Y2 Z2 ⇒
X × Y2 - X2 × Y ≠ 0 →
Y × Z2 - Y2 × Z ≠ 0 →
Z × X2 - Z2 × X ≠ 0 →
eq_points (cross_difference P U) (isogonal_conjugate (trilinear_pole (line P U)))
end.
Proof.
intros.
destruct P.
destruct U.
unfold eq_points, trilinear_pole, cross_difference, isogonal_conjugate.
simpl.
split;
field;
repeat split;assumption.
Qed.
End Triangle.